<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Reranker Framework (ReFr): reranker::Model Class Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Reranker Framework (ReFr)
   
   </div>
   <div id="projectbrief">Reranking framework for structure prediction and discriminative language modeling</div>
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><a class="el" href="namespacereranker.html">reranker</a>      </li>
      <li class="navelem"><a class="el" href="classreranker_1_1_model.html">Model</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">reranker::Model Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<!-- doxytag: class="reranker::Model" --><!-- doxytag: inherits="reranker::FactoryConstructible" -->
<p><a class="el" href="classreranker_1_1_model.html" title="Model is an interface for reranking models.">Model</a> is an interface for reranking models.  
 <a href="classreranker_1_1_model.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="model_8_h_source.html">model.H</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for reranker::Model:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classreranker_1_1_model.png" usemap="#reranker::Model_map" alt=""/>
  <map id="reranker::Model_map" name="reranker::Model_map">
<area href="classreranker_1_1_factory_constructible.html" title="An interface to make it easier to implement Factory-constructible types by implementing both required..." alt="reranker::FactoryConstructible" shape="rect" coords="0,0,185,24"/>
<area href="classreranker_1_1_perceptron_model.html" title="This class implements a perceptron model reranker." alt="reranker::PerceptronModel" shape="rect" coords="0,112,185,136"/>
<area href="classreranker_1_1_mira_style_model.html" title="A subclass of PerceptronModel that differs only in the way that the ComputeStepSize method is impleme..." alt="reranker::MiraStyleModel" shape="rect" coords="0,168,185,192"/>
</map>
 </div></div>

<p><a href="classreranker_1_1_model-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model_1_1_hook.html">Hook</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An interface for specifying a hook to be run by a <a class="el" href="classreranker_1_1_model.html">Model</a> instance.  <a href="classreranker_1_1_model_1_1_hook.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model_1_1_update_predicate.html">UpdatePredicate</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An inner interface for a predicate that tests whether a <a class="el" href="classreranker_1_1_model.html">Model</a> needs to be updated based on the current training example.  <a href="classreranker_1_1_model_1_1_update_predicate.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model_1_1_updater.html">Updater</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An inner interface specifying an update function for a model.  <a href="classreranker_1_1_model_1_1_updater.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ad2e716fbaa2f40daecbfb474d8a1a3bb">Model</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new instance with the empty string for its name and a NULL kernel function.  <a href="#ad2e716fbaa2f40daecbfb474d8a1a3bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ac3f1e74c09f7d84a2d251d4cae7cbfb9">Model</a> (const string &amp;<a class="el" href="classreranker_1_1_model.html#a7360b45e4a024759cd393b376209cf3c">name</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new instance with a NULL kernel function.  <a href="#ac3f1e74c09f7d84a2d251d4cae7cbfb9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a5f725de423051610d138c69dfa740be4">Model</a> (const string &amp;<a class="el" href="classreranker_1_1_model.html#a7360b45e4a024759cd393b376209cf3c">name</a>, <a class="el" href="classreranker_1_1_kernel_function.html">KernelFunction</a> *kernel_fn)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new instance with the specified kernel function.  <a href="#a5f725de423051610d138c69dfa740be4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a6890296beda9419113615eab5f490d47">Model</a> (const string &amp;<a class="el" href="classreranker_1_1_model.html#a7360b45e4a024759cd393b376209cf3c">name</a>, <a class="el" href="classreranker_1_1_kernel_function.html">KernelFunction</a> *kernel_fn, <a class="el" href="classreranker_1_1_symbols.html">Symbols</a> *<a class="el" href="classreranker_1_1_model.html#a736bec0b8f468285580982df181a7cd0">symbols</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructs a new instance with the specified kernel function and symbol table.  <a href="#a6890296beda9419113615eab5f490d47"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ab9db93974f414dab2de059b4d5f76758">~Model</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys this model and its associated kernel function.  <a href="#ab9db93974f414dab2de059b4d5f76758"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a7360b45e4a024759cd393b376209cf3c">name</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the unique name for this model instance.  <a href="#a7360b45e4a024759cd393b376209cf3c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classreranker_1_1_symbols.html">Symbols</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a736bec0b8f468285580982df181a7cd0">symbols</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the symbol table for this model.  <a href="#a736bec0b8f468285580982df181a7cd0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classreranker_1_1_time.html">Time</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a6385b58c2b89e43f00033bbed7ead046">time</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current training time of this model: number of epochs, number of time steps in the current epoch and total number of time steps (which is equal to the total number of training examples seen).  <a href="#a6385b58c2b89e43f00033bbed7ead046"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a02b18d754bc85251690f9ffe09c0a86e">best_model_epoch</a> () const =0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ad913f9f96a40e22443cd95b04d693887">num_updates</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of updates made by this model.  <a href="#ad913f9f96a40e22443cd95b04d693887"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const vector&lt; int &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ada68b9f869ede8de97d35c50cd7e5e5c">num_training_errors_per_epoch</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of training errors made for each epoch.  <a href="#ada68b9f869ede8de97d35c50cd7e5e5c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a46c143623d0f7b51040927aa0fd9197b">num_training_errors</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of training errors made by this model.  <a href="#a46c143623d0f7b51040927aa0fd9197b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ae376fddf5518ab1e7a9f5b5d114afe7b">min_epochs</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the minimum number of epochs to train.  <a href="#ae376fddf5518ab1e7a9f5b5d114afe7b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a02cba71a3c90cec312f0244c39ed30a5">max_epochs</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the maximum number of epochs to train.  <a href="#a02cba71a3c90cec312f0244c39ed30a5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const vector&lt; double &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#aeb377b3c084ca4b7a5d6afe3ba4e4a13">loss_per_epoch</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the loss per epoch for epoch of training that was evaluated.  <a href="#aeb377b3c084ca4b7a5d6afe3ba4e4a13"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a0e4935d14bb956cd7ab722e39790c9b7">model_spec</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the spec string for constructing a default instance of this model so it may be properly de-serialized by its <a class="el" href="classreranker_1_1_model_proto_reader.html">ModelProtoReader</a>.  <a href="#a0e4935d14bb956cd7ab722e39790c9b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a0fc70a87fe28a300cac5fd1af552e27f">proto_reader_spec</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the spec string for contructing an instance of a <a class="el" href="classreranker_1_1_model_proto_reader.html">ModelProtoReader</a> capable of de-serializing this <a class="el" href="classreranker_1_1_model.html">Model</a> implementation.  <a href="#a0fc70a87fe28a300cac5fd1af552e27f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual const string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ac94d349353f82e74567ec9b56dbbdcdd">proto_writer_spec</a> () const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the spec string for contructing an instance of a <a class="el" href="classreranker_1_1_model_proto_writer.html">ModelProtoWriter</a> capable of serializing this <a class="el" href="classreranker_1_1_model.html">Model</a> implementation.  <a href="#ac94d349353f82e74567ec9b56dbbdcdd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual shared_ptr<br class="typebreak"/>
&lt; <a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#aa58b2fee786c6402ea7429f7c2d27431">score_comparator</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the score comparator used by this model.  <a href="#aa58b2fee786c6402ea7429f7c2d27431"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual shared_ptr<br class="typebreak"/>
&lt; <a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ae13ea77e614feaf88faebfe37cd45224">gold_comparator</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the gold comparator used by this model.  <a href="#ae13ea77e614feaf88faebfe37cd45224"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a878991ef6241e976d565ac167dd3a157">NeedToKeepTraining</a> ()=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether more training epochs are required for this model.  <a href="#a878991ef6241e976d565ac167dd3a157"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a0468287cffc492868548bc5627942734">Train</a> (<a class="el" href="classreranker_1_1_candidate_set_iterator.html">CandidateSetIterator</a> &amp;examples, <a class="el" href="classreranker_1_1_candidate_set_iterator.html">CandidateSetIterator</a> &amp;development_test)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Trains this model on a collection of training examples, where each training example is a set of candidates, possibly with a distinguished "gold candidate" that is the reference against which other candidates are scored.  <a href="#a0468287cffc492868548bc5627942734"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a4c962a69b553f71c58a60aa6d86e7577">NewEpoch</a> ()=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a0392df23892406abcbf21bbe1bf5392a">EndOfEpoch</a> ()=0</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a6aeac4515eae1f8b6d7adf665f05060f">TrainOneEpoch</a> (<a class="el" href="classreranker_1_1_candidate_set_iterator.html">CandidateSetIterator</a> &amp;examples)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Trains this model for one epoch, i.e., a single pass through the specified set of training examples.  <a href="#a6aeac4515eae1f8b6d7adf665f05060f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ad6a7660247d0c0477d5c4f01591a942b">TrainOnExample</a> (<a class="el" href="classreranker_1_1_candidate_set.html">CandidateSet</a> &amp;example)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Trains this model on the specified training example.  <a href="#ad6a7660247d0c0477d5c4f01591a942b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a2fff2752a2ec18289f26954daf526cb3">NeedToUpdate</a> (<a class="el" href="classreranker_1_1_candidate_set.html">CandidateSet</a> &amp;example)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether the current model needs to be updated.  <a href="#a2fff2752a2ec18289f26954daf526cb3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#aef926c377e32ce215bbc69847853e16e">Update</a> (<a class="el" href="classreranker_1_1_candidate_set.html">CandidateSet</a> &amp;example)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates the current model based on the specified set of candidates.  <a href="#aef926c377e32ce215bbc69847853e16e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#aaa962ac773eb3b4483452c846eda0f44">Evaluate</a> (<a class="el" href="classreranker_1_1_candidate_set_iterator.html">CandidateSetIterator</a> &amp;development_test)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Evaluates this model on the specified set of held-out development test data.  <a href="#aaa962ac773eb3b4483452c846eda0f44"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ad8510757242f405b549473b5ce6f8911">ScoreCandidates</a> (<a class="el" href="classreranker_1_1_candidate_set.html">CandidateSet</a> &amp;candidates, bool training)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scores the specified set of candidates according to either the raw or averaged version of this perceptron model.  <a href="#ad8510757242f405b549473b5ce6f8911"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a5c8423bb022156759515b808f93751a9">ScoreCandidate</a> (<a class="el" href="classreranker_1_1_candidate.html">Candidate</a> &amp;candidate, bool training)=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scores a candidate according to either the raw or averaged version of this perceptron model.  <a href="#a5c8423bb022156759515b808f93751a9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a9ceb029bcfd1f94e140c8ffb445ae480">set_min_epochs</a> (int <a class="el" href="classreranker_1_1_model.html#ae376fddf5518ab1e7a9f5b5d114afe7b">min_epochs</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the minimum number of epochs to train.  <a href="#a9ceb029bcfd1f94e140c8ffb445ae480"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a0ab309493d66bb5231a7d19b81d0b997">set_max_epochs</a> (int <a class="el" href="classreranker_1_1_model.html#a02cba71a3c90cec312f0244c39ed30a5">max_epochs</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the maximum number of epochs to train.  <a href="#a0ab309493d66bb5231a7d19b81d0b997"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#aabd4a60963fac4b9b06f510a55b1dfd7">CompactifyFeatureUids</a> ()=0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Renumbers the potentially sparse feature uid&rsquo;s so that they occupy the interval <code>[0,n-1]</code> densely, for <code>n</code> non-zero features in use by this model.  <a href="#aabd4a60963fac4b9b06f510a55b1dfd7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a82524ee041462b4f7be0b35bed8e27c1">set_end_of_epoch_hook</a> (<a class="el" href="classreranker_1_1_model_1_1_hook.html">Hook</a> *end_of_epoch_hook)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a013aa52eb8693d1133a0d32740dffa5a">use_weighted_loss</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#abbcabce58d51fea59d81a6e71020e7cb">set_use_weighted_loss</a> (bool <a class="el" href="classreranker_1_1_model.html#a013aa52eb8693d1133a0d32740dffa5a">use_weighted_loss</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ac8b9c5c951206127f87be6b2b76f9d8d">set_symbols</a> (<a class="el" href="classreranker_1_1_symbols.html">Symbols</a> *<a class="el" href="classreranker_1_1_model.html#a736bec0b8f468285580982df181a7cd0">symbols</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the <a class="el" href="classreranker_1_1_symbols.html" title="An interface specifying a converter from symbols (strings) to int indices.">Symbols</a> instance for this <a class="el" href="classreranker_1_1_model.html" title="Model is an interface for reranking models.">Model</a> to be the specified instance.  <a href="#ac8b9c5c951206127f87be6b2b76f9d8d"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ae5c922a33c8643373424f860e880cf72">set_name</a> (const string &amp;<a class="el" href="classreranker_1_1_model.html#a7360b45e4a024759cd393b376209cf3c">name</a>)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the name of this <a class="el" href="classreranker_1_1_model.html">Model</a> instance.  <a href="#ae5c922a33c8643373424f860e880cf72"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#aaefb076ddcffefa2da7881579db7a7a9">set_kernel_fn</a> (<a class="el" href="classreranker_1_1_kernel_function.html">KernelFunction</a> *kernel_fn)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the kernel function for this model.  <a href="#aaefb076ddcffefa2da7881579db7a7a9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a5345ab1669dc9300abed225ddc5c9a9e">set_score_comparator</a> (shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a> &gt; <a class="el" href="classreranker_1_1_model.html#aa58b2fee786c6402ea7429f7c2d27431">score_comparator</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a9c3b21c730eddb930756387bbac173fa">set_gold_comparator</a> (shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a> &gt; <a class="el" href="classreranker_1_1_model.html#ae13ea77e614feaf88faebfe37cd45224">gold_comparator</a>)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a5ae78a37db26302ce041552de0032b6e">SetDefaultObjects</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#af5ad4399e59ddf4a82b37d8ee348a370">SetDefaultComparators</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#af13a628eba8c6d9a14652dfe36d5da57">SetDefaultCandidateSetScorer</a> ()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ab33dc7e4ee114be828db6eebf15bc47c">GetComparator</a> (const string &amp;spec) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_set_1_1_scorer.html">CandidateSet::Scorer</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a570719cf2126c0bb7d120a3dcd19f0f4">GetCandidateSetScorer</a> (const string &amp;spec) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">shared_ptr&lt; <a class="el" href="classreranker_1_1_model_1_1_update_predicate.html">UpdatePredicate</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a1f79bda31ef5b3ed236d77a79403d789">GetUpdatePredicate</a> (const string &amp;spec) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">shared_ptr&lt; <a class="el" href="classreranker_1_1_model_1_1_updater.html">Updater</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a66309617d0bdc5a615d843b2ae88e9d8">GetUpdater</a> (const string &amp;spec) const </td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a85e014c8643c0a12db3a891e4eb5dc5c">CheckNumberOfTokens</a> (const string &amp;arg, const vector&lt; string &gt; &amp;tokens, size_t min_expected_number, size_t max_expected_number, const string &amp;class_name) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A helper method for implementing the <a class="el" href="classreranker_1_1_factory_constructible.html#a0da3c3a5ce59818137e59a9364162101">Init</a> method: throws a std::runtime_error if the number of tokens in the argument string is not the expected number.  <a href="#a85e014c8643c0a12db3a891e4eb5dc5c"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ac6e00f894c28c3bc36636983a0fc2bb6">name_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">This model&rsquo;s unique name.  <a href="#ac6e00f894c28c3bc36636983a0fc2bb6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classreranker_1_1_time.html">Time</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ac23eff7aa52c83c566658bcba9093c4f">time_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The tiny object that holds the "training time" for this model (epoch, index and absolute time index).  <a href="#ac23eff7aa52c83c566658bcba9093c4f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classreranker_1_1_kernel_function.html">KernelFunction</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a50128261606a9cb655493b3f9b9149c4">kernel_fn_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Yes, this is an interface, but we add the kernel function as a data member.  <a href="#a50128261606a9cb655493b3f9b9149c4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classreranker_1_1_symbols.html">Symbols</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a8c0f904234605692035ba179f85c53e2">symbols_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The symbol table for this model (may be NULL).  <a href="#a8c0f904234605692035ba179f85c53e2"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a9e7183bee1f50b058b17ab8e43cdbeef">score_comparator_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A comparator to provide an ordering for candidates based on score when scoring all candidates in a set.  <a href="#a9e7183bee1f50b058b17ab8e43cdbeef"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a8107be43f3916858a204c2d7c2f2d32e">gold_comparator_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A comparator to provide an ordering for candidates to find the gold candidate in a set.  <a href="#a8107be43f3916858a204c2d7c2f2d32e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_set_1_1_scorer.html">CandidateSet::Scorer</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#abf7147622fb3c5801016fb7c479f3158">candidate_set_scorer_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A scorer for <a class="el" href="classreranker_1_1_candidate_set.html">CandidateSet</a> instances.  <a href="#abf7147622fb3c5801016fb7c479f3158"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">shared_ptr&lt; <a class="el" href="classreranker_1_1_model_1_1_update_predicate.html">UpdatePredicate</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#aac9c10b6d6a3eec5f781cfbf64bcdf22">update_predicate_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The update predicate for this model.  <a href="#aac9c10b6d6a3eec5f781cfbf64bcdf22"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">shared_ptr&lt; <a class="el" href="classreranker_1_1_model_1_1_updater.html">Updater</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a6af75a0de0ab2cfb3435919977341550">updater_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The updater for this model.  <a href="#a6af75a0de0ab2cfb3435919977341550"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ad3a296860f768bee866213cc0c8bbf83">loss_per_epoch_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The average loss per epoch.  <a href="#ad3a296860f768bee866213cc0c8bbf83"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ab308fe9304485e8c838ed2a196bb585b">num_testing_errors_per_epoch_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of testing errors made on held-out development test data for each epoch.  <a href="#ab308fe9304485e8c838ed2a196bb585b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">vector&lt; int &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a1f40d6deeb75c42c3cf78d73e71f0914">num_training_errors_per_epoch_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of errors made on training examples during each epoch.  <a href="#a1f40d6deeb75c42c3cf78d73e71f0914"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ac9bd9064006d70c36391818fa6a628b7">num_training_errors_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of errors made on training examples.  <a href="#ac9bd9064006d70c36391818fa6a628b7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#ace86345c7febd6401dc3f48ad555f02e">num_updates_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of times an update was performed on this model during training.  <a href="#ace86345c7febd6401dc3f48ad555f02e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a2a22810704e9c2cde4cc6cd9c2c1531f">min_epochs_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum number of training epochs to execute.  <a href="#a2a22810704e9c2cde4cc6cd9c2c1531f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#adf7fefff5cd4576a101c1fe4c390d9db">max_epochs_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of training epochs to execute.  <a href="#adf7fefff5cd4576a101c1fe4c390d9db"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classreranker_1_1_model_1_1_hook.html">Hook</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a97e6523258a589e4fedb67b3a6364cea">end_of_epoch_hook_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A hook to be performed at the end of every epoch.  <a href="#a97e6523258a589e4fedb67b3a6364cea"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classreranker_1_1_model.html#a0601602d295f4b069e11ddebf941c2a5">use_weighted_loss_</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicates whether this model should weight each candidate&rsquo;s loss by the value returned by <a class="el" href="classreranker_1_1_candidate_set.html#a9bd2e0995871ec942b8117dc01293631">CandidateSet::loss_weight</a>.  <a href="#a0601602d295f4b069e11ddebf941c2a5"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classreranker_1_1_model.html" title="Model is an interface for reranking models.">Model</a> is an interface for reranking models. </p>
<p>TODO(dbikel): Add factory for kernel functions. Remove all constructors but the zero-arg constructor from both <a class="el" href="classreranker_1_1_model.html" title="Model is an interface for reranking models.">Model</a> and <a class="el" href="classreranker_1_1_perceptron_model.html" title="This class implements a perceptron model reranker.">PerceptronModel</a>. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00141">141</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ad2e716fbaa2f40daecbfb474d8a1a3bb"></a><!-- doxytag: member="reranker::Model::Model" ref="ad2e716fbaa2f40daecbfb474d8a1a3bb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classreranker_1_1_model.html#ad2e716fbaa2f40daecbfb474d8a1a3bb">reranker::Model::Model</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructs a new instance with the empty string for its name and a NULL kernel function. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00145">145</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ac3f1e74c09f7d84a2d251d4cae7cbfb9"></a><!-- doxytag: member="reranker::Model::Model" ref="ac3f1e74c09f7d84a2d251d4cae7cbfb9" args="(const string &amp;name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classreranker_1_1_model.html#ad2e716fbaa2f40daecbfb474d8a1a3bb">reranker::Model::Model</a> </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructs a new instance with a NULL kernel function. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>the unique name of this model instance </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00160">160</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a5f725de423051610d138c69dfa740be4"></a><!-- doxytag: member="reranker::Model::Model" ref="a5f725de423051610d138c69dfa740be4" args="(const string &amp;name, KernelFunction *kernel_fn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classreranker_1_1_model.html#ad2e716fbaa2f40daecbfb474d8a1a3bb">reranker::Model::Model</a> </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_kernel_function.html">KernelFunction</a> *&#160;</td>
          <td class="paramname"><em>kernel_fn</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructs a new instance with the specified kernel function. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>the unique name of this model instance </td></tr>
    <tr><td class="paramname">kernel_fn</td><td>the kernel function for this model to use when applied to training or test instances </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00177">177</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a6890296beda9419113615eab5f490d47"></a><!-- doxytag: member="reranker::Model::Model" ref="a6890296beda9419113615eab5f490d47" args="(const string &amp;name, KernelFunction *kernel_fn, Symbols *symbols)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classreranker_1_1_model.html#ad2e716fbaa2f40daecbfb474d8a1a3bb">reranker::Model::Model</a> </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_kernel_function.html">KernelFunction</a> *&#160;</td>
          <td class="paramname"><em>kernel_fn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_symbols.html">Symbols</a> *&#160;</td>
          <td class="paramname"><em>symbols</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Constructs a new instance with the specified kernel function and symbol table. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">name</td><td>the unique name of this model instance </td></tr>
    <tr><td class="paramname">kernel_fn</td><td>the kernel function for this model to use when applied to training or test instances </td></tr>
    <tr><td class="paramname">symbols</td><td>the symbol table for this <a class="el" href="classreranker_1_1_model.html" title="Model is an interface for reranking models.">Model</a> to use; this <a class="el" href="classreranker_1_1_model.html" title="Model is an interface for reranking models.">Model</a> will be responsible for deleting this <a class="el" href="classreranker_1_1_symbols.html" title="An interface specifying a converter from symbols (strings) to int indices.">Symbols</a> object </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00198">198</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ab9db93974f414dab2de059b4d5f76758"></a><!-- doxytag: member="reranker::Model::~Model" ref="ab9db93974f414dab2de059b4d5f76758" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classreranker_1_1_model.html#ab9db93974f414dab2de059b4d5f76758">reranker::Model::~Model</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Destroys this model and its associated kernel function. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00213">213</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a02b18d754bc85251690f9ffe09c0a86e"></a><!-- doxytag: member="reranker::Model::best_model_epoch" ref="a02b18d754bc85251690f9ffe09c0a86e" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int <a class="el" href="classreranker_1_1_model.html#a02b18d754bc85251690f9ffe09c0a86e">reranker::Model::best_model_epoch</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#afae11bd9b41855ae74cf974fdf1ef417">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="a85e014c8643c0a12db3a891e4eb5dc5c"></a><!-- doxytag: member="reranker::Model::CheckNumberOfTokens" ref="a85e014c8643c0a12db3a891e4eb5dc5c" args="(const string &amp;arg, const vector&lt; string &gt; &amp;tokens, size_t min_expected_number, size_t max_expected_number, const string &amp;class_name) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classreranker_1_1_model.html#a85e014c8643c0a12db3a891e4eb5dc5c">reranker::Model::CheckNumberOfTokens</a> </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const vector&lt; string &gt; &amp;&#160;</td>
          <td class="paramname"><em>tokens</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>min_expected_number</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>max_expected_number</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>class_name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const<code> [protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A helper method for implementing the <a class="el" href="classreranker_1_1_factory_constructible.html#a0da3c3a5ce59818137e59a9364162101">Init</a> method: throws a std::runtime_error if the number of tokens in the argument string is not the expected number. </p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">arg</td><td>the arg that was tokenized (for error reporting) </td></tr>
    <tr><td class="paramname">tokens</td><td>the tokens array to inspect for correct size </td></tr>
    <tr><td class="paramname">min_expected_number</td><td>the minimum expected number of tokens </td></tr>
    <tr><td class="paramname">max_expected_number</td><td>the maximum expected number of tokens </td></tr>
    <tr><td class="paramname">class_name</td><td>the name of the class invoking this method (for error reporting) </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="model_8_c_source.html#l00134">134</a> of file <a class="el" href="model_8_c_source.html">model.C</a>.</p>

</div>
</div>
<a class="anchor" id="aabd4a60963fac4b9b06f510a55b1dfd7"></a><!-- doxytag: member="reranker::Model::CompactifyFeatureUids" ref="aabd4a60963fac4b9b06f510a55b1dfd7" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#aabd4a60963fac4b9b06f510a55b1dfd7">reranker::Model::CompactifyFeatureUids</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Renumbers the potentially sparse feature uid&rsquo;s so that they occupy the interval <code>[0,n-1]</code> densely, for <code>n</code> non-zero features in use by this model. </p>
<p>If the internal <a class="el" href="classreranker_1_1_symbols.html" title="An interface specifying a converter from symbols (strings) to int indices.">Symbols</a> instance is non-<code>NULL</code>, then this method also adjusts it to reflect the new set of feature uid&rsquo;s. </p>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#a919a86a6a3a52f62199b438fb092836d">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="a0392df23892406abcbf21bbe1bf5392a"></a><!-- doxytag: member="reranker::Model::EndOfEpoch" ref="a0392df23892406abcbf21bbe1bf5392a" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#a0392df23892406abcbf21bbe1bf5392a">reranker::Model::EndOfEpoch</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#a5e1359da40c7d987f2a14b7b47765a83">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="aaa962ac773eb3b4483452c846eda0f44"></a><!-- doxytag: member="reranker::Model::Evaluate" ref="aaa962ac773eb3b4483452c846eda0f44" args="(CandidateSetIterator &amp;development_test)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual double <a class="el" href="classreranker_1_1_model.html#aaa962ac773eb3b4483452c846eda0f44">reranker::Model::Evaluate</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_candidate_set_iterator.html">CandidateSetIterator</a> &amp;&#160;</td>
          <td class="paramname"><em>development_test</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Evaluates this model on the specified set of held-out development test data. </p>
<dl class="user"><dt><b>Side effects:</b></dt><dd>This method is guaranteed to append a value to the internal <a class="el" href="classreranker_1_1_model.html#ad3a296860f768bee866213cc0c8bbf83">loss_per_epoch_</a> vector.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">development_test</td><td>a held-out set of examples to use for evaluation of this model (during training, this method is typically invoked after each epoch to determine when to stop) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the loss of this model when evaluated on the specified development test set </dd></dl>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#a615950ed57b7ea2c729b374438f8d31e">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="a570719cf2126c0bb7d120a3dcd19f0f4"></a><!-- doxytag: member="reranker::Model::GetCandidateSetScorer" ref="a570719cf2126c0bb7d120a3dcd19f0f4" args="(const string &amp;spec) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_set_1_1_scorer.html">CandidateSet::Scorer</a> &gt; <a class="el" href="classreranker_1_1_model.html#a570719cf2126c0bb7d120a3dcd19f0f4">reranker::Model::GetCandidateSetScorer</a> </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>spec</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_c_source.html#l00160">160</a> of file <a class="el" href="model_8_c_source.html">model.C</a>.</p>

</div>
</div>
<a class="anchor" id="ab33dc7e4ee114be828db6eebf15bc47c"></a><!-- doxytag: member="reranker::Model::GetComparator" ref="ab33dc7e4ee114be828db6eebf15bc47c" args="(const string &amp;spec) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a> &gt; <a class="el" href="classreranker_1_1_model.html#ab33dc7e4ee114be828db6eebf15bc47c">reranker::Model::GetComparator</a> </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>spec</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_c_source.html#l00152">152</a> of file <a class="el" href="model_8_c_source.html">model.C</a>.</p>

</div>
</div>
<a class="anchor" id="a1f79bda31ef5b3ed236d77a79403d789"></a><!-- doxytag: member="reranker::Model::GetUpdatePredicate" ref="a1f79bda31ef5b3ed236d77a79403d789" args="(const string &amp;spec) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt; <a class="el" href="classreranker_1_1_model_1_1_update_predicate.html">Model::UpdatePredicate</a> &gt; <a class="el" href="classreranker_1_1_model.html#a1f79bda31ef5b3ed236d77a79403d789">reranker::Model::GetUpdatePredicate</a> </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>spec</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_c_source.html#l00168">168</a> of file <a class="el" href="model_8_c_source.html">model.C</a>.</p>

</div>
</div>
<a class="anchor" id="a66309617d0bdc5a615d843b2ae88e9d8"></a><!-- doxytag: member="reranker::Model::GetUpdater" ref="a66309617d0bdc5a615d843b2ae88e9d8" args="(const string &amp;spec) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt; <a class="el" href="classreranker_1_1_model_1_1_updater.html">Model::Updater</a> &gt; <a class="el" href="classreranker_1_1_model.html#a66309617d0bdc5a615d843b2ae88e9d8">reranker::Model::GetUpdater</a> </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>spec</em></td><td>)</td>
          <td> const<code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_c_source.html#l00176">176</a> of file <a class="el" href="model_8_c_source.html">model.C</a>.</p>

</div>
</div>
<a class="anchor" id="ae13ea77e614feaf88faebfe37cd45224"></a><!-- doxytag: member="reranker::Model::gold_comparator" ref="ae13ea77e614feaf88faebfe37cd45224" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual shared_ptr&lt;<a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a>&gt; <a class="el" href="classreranker_1_1_model.html#ae13ea77e614feaf88faebfe37cd45224">reranker::Model::gold_comparator</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a pointer to the gold comparator used by this model. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00350">350</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="aeb377b3c084ca4b7a5d6afe3ba4e4a13"></a><!-- doxytag: member="reranker::Model::loss_per_epoch" ref="aeb377b3c084ca4b7a5d6afe3ba4e4a13" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const vector&lt;double&gt;&amp; <a class="el" href="classreranker_1_1_model.html#aeb377b3c084ca4b7a5d6afe3ba4e4a13">reranker::Model::loss_per_epoch</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the loss per epoch for epoch of training that was evaluated. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00327">327</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a02cba71a3c90cec312f0244c39ed30a5"></a><!-- doxytag: member="reranker::Model::max_epochs" ref="a02cba71a3c90cec312f0244c39ed30a5" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classreranker_1_1_model.html#a02cba71a3c90cec312f0244c39ed30a5">reranker::Model::max_epochs</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the maximum number of epochs to train. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00324">324</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ae376fddf5518ab1e7a9f5b5d114afe7b"></a><!-- doxytag: member="reranker::Model::min_epochs" ref="ae376fddf5518ab1e7a9f5b5d114afe7b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classreranker_1_1_model.html#ae376fddf5518ab1e7a9f5b5d114afe7b">reranker::Model::min_epochs</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the minimum number of epochs to train. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00321">321</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a0e4935d14bb956cd7ab722e39790c9b7"></a><!-- doxytag: member="reranker::Model::model_spec" ref="a0e4935d14bb956cd7ab722e39790c9b7" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const string&amp; <a class="el" href="classreranker_1_1_model.html#a0e4935d14bb956cd7ab722e39790c9b7">reranker::Model::model_spec</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the spec string for constructing a default instance of this model so it may be properly de-serialized by its <a class="el" href="classreranker_1_1_model_proto_reader.html">ModelProtoReader</a>. </p>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#a80c863f01106f5721971324d8f23bc76">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="a7360b45e4a024759cd393b376209cf3c"></a><!-- doxytag: member="reranker::Model::name" ref="a7360b45e4a024759cd393b376209cf3c" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const string&amp; <a class="el" href="classreranker_1_1_model.html#a7360b45e4a024759cd393b376209cf3c">reranker::Model::name</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the unique name for this model instance. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00292">292</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a878991ef6241e976d565ac167dd3a157"></a><!-- doxytag: member="reranker::Model::NeedToKeepTraining" ref="a878991ef6241e976d565ac167dd3a157" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classreranker_1_1_model.html#a878991ef6241e976d565ac167dd3a157">reranker::Model::NeedToKeepTraining</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns whether more training epochs are required for this model. </p>
<dl class="user"><dt><b>Implementation advice:</b></dt><dd>Implementations of the <a class="el" href="classreranker_1_1_model.html#a0468287cffc492868548bc5627942734">Train</a> method are strongly encouraged to have their main loop test be the return value of this method. Also, the return value of this method should respect the <a class="el" href="classreranker_1_1_model.html#ae376fddf5518ab1e7a9f5b5d114afe7b">min_epochs</a> and <a class="el" href="classreranker_1_1_model.html#a02cba71a3c90cec312f0244c39ed30a5">max_epochs</a> values. </dd></dl>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#a089a2268c88e89684c03d0730c5691c7">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="a2fff2752a2ec18289f26954daf526cb3"></a><!-- doxytag: member="reranker::Model::NeedToUpdate" ref="a2fff2752a2ec18289f26954daf526cb3" args="(CandidateSet &amp;example)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classreranker_1_1_model.html#a2fff2752a2ec18289f26954daf526cb3">reranker::Model::NeedToUpdate</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_candidate_set.html">CandidateSet</a> &amp;&#160;</td>
          <td class="paramname"><em>example</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Indicates whether the current model needs to be updated. </p>
<p>For perceptron-style models, this is usually based on having scored the candidates and finding that the best-scoring candidate is not equal to the gold or reference candidate.</p>
<dl class="user"><dt><b>Implementation advice:</b></dt><dd>This method is typically implemented in terms of a <a class="el" href="classreranker_1_1_model_1_1_update_predicate.html">UpdatePredicate</a> instance.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">example</td><td>the current training example </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#a2d1e5450a8d1ccc781b9b135b7504a3f">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="a4c962a69b553f71c58a60aa6d86e7577"></a><!-- doxytag: member="reranker::Model::NewEpoch" ref="a4c962a69b553f71c58a60aa6d86e7577" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#a4c962a69b553f71c58a60aa6d86e7577">reranker::Model::NewEpoch</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#a598e88d61b4b35b2b5df59a00fc73d6e">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="a46c143623d0f7b51040927aa0fd9197b"></a><!-- doxytag: member="reranker::Model::num_training_errors" ref="a46c143623d0f7b51040927aa0fd9197b" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classreranker_1_1_model.html#a46c143623d0f7b51040927aa0fd9197b">reranker::Model::num_training_errors</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of training errors made by this model. </p>
<p>In the case of the perceptron family of algorithms, this value is typically equal to the number of updates made during training. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00318">318</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ada68b9f869ede8de97d35c50cd7e5e5c"></a><!-- doxytag: member="reranker::Model::num_training_errors_per_epoch" ref="ada68b9f869ede8de97d35c50cd7e5e5c" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const vector&lt;int&gt;&amp; <a class="el" href="classreranker_1_1_model.html#ada68b9f869ede8de97d35c50cd7e5e5c">reranker::Model::num_training_errors_per_epoch</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of training errors made for each epoch. </p>
<p>The last element of this vector is the number of training errors made during the most recent epoch of training. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00312">312</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ad913f9f96a40e22443cd95b04d693887"></a><!-- doxytag: member="reranker::Model::num_updates" ref="ad913f9f96a40e22443cd95b04d693887" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classreranker_1_1_model.html#ad913f9f96a40e22443cd95b04d693887">reranker::Model::num_updates</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the number of updates made by this model. </p>
<p>In the case of the perceptron family of algorithms, this value is typically equal to the number of training errors. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00308">308</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a0fc70a87fe28a300cac5fd1af552e27f"></a><!-- doxytag: member="reranker::Model::proto_reader_spec" ref="a0fc70a87fe28a300cac5fd1af552e27f" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const string&amp; <a class="el" href="classreranker_1_1_model.html#a0fc70a87fe28a300cac5fd1af552e27f">reranker::Model::proto_reader_spec</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the spec string for contructing an instance of a <a class="el" href="classreranker_1_1_model_proto_reader.html">ModelProtoReader</a> capable of de-serializing this <a class="el" href="classreranker_1_1_model.html">Model</a> implementation. </p>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#ac91dd3431ca9a536b7e31db72d052207">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="ac94d349353f82e74567ec9b56dbbdcdd"></a><!-- doxytag: member="reranker::Model::proto_writer_spec" ref="ac94d349353f82e74567ec9b56dbbdcdd" args="() const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const string&amp; <a class="el" href="classreranker_1_1_model.html#ac94d349353f82e74567ec9b56dbbdcdd">reranker::Model::proto_writer_spec</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the spec string for contructing an instance of a <a class="el" href="classreranker_1_1_model_proto_writer.html">ModelProtoWriter</a> capable of serializing this <a class="el" href="classreranker_1_1_model.html">Model</a> implementation. </p>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#a11c4a5013286e6fd465c1dac494f3bcb">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="aa58b2fee786c6402ea7429f7c2d27431"></a><!-- doxytag: member="reranker::Model::score_comparator" ref="aa58b2fee786c6402ea7429f7c2d27431" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual shared_ptr&lt;<a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a>&gt; <a class="el" href="classreranker_1_1_model.html#aa58b2fee786c6402ea7429f7c2d27431">reranker::Model::score_comparator</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns a pointer to the score comparator used by this model. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00345">345</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a5c8423bb022156759515b808f93751a9"></a><!-- doxytag: member="reranker::Model::ScoreCandidate" ref="a5c8423bb022156759515b808f93751a9" args="(Candidate &amp;candidate, bool training)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual double <a class="el" href="classreranker_1_1_model.html#a5c8423bb022156759515b808f93751a9">reranker::Model::ScoreCandidate</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_candidate.html">Candidate</a> &amp;&#160;</td>
          <td class="paramname"><em>candidate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>training</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scores a candidate according to either the raw or averaged version of this perceptron model. </p>
<p>The specified candidate's score may be modified.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">candidate</td><td>the candidate to be scored by this model </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">training</td><td>whether this is being called during training or evaluation of a model </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the score of the specified candidate according to the specified model </dd></dl>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#aff26021ce19337a90068b66a219c0c6c">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="ad8510757242f405b549473b5ce6f8911"></a><!-- doxytag: member="reranker::Model::ScoreCandidates" ref="ad8510757242f405b549473b5ce6f8911" args="(CandidateSet &amp;candidates, bool training)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#ad8510757242f405b549473b5ce6f8911">reranker::Model::ScoreCandidates</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_candidate_set.html">CandidateSet</a> &amp;&#160;</td>
          <td class="paramname"><em>candidates</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>training</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scores the specified set of candidates according to either the raw or averaged version of this perceptron model. </p>
<p>The scores of the specified set of candidates may be modified.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">candidates</td><td>the set of candidates to be scored </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">training</td><td>whether this is being called during training or evaluation of a model </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#ace55bad139573080e682d5a269760673">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="a82524ee041462b4f7be0b35bed8e27c1"></a><!-- doxytag: member="reranker::Model::set_end_of_epoch_hook" ref="a82524ee041462b4f7be0b35bed8e27c1" args="(Hook *end_of_epoch_hook)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#a82524ee041462b4f7be0b35bed8e27c1">reranker::Model::set_end_of_epoch_hook</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_model_1_1_hook.html">Hook</a> *&#160;</td>
          <td class="paramname"><em>end_of_epoch_hook</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_h_source.html#l00473">473</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a9c3b21c730eddb930756387bbac173fa"></a><!-- doxytag: member="reranker::Model::set_gold_comparator" ref="a9c3b21c730eddb930756387bbac173fa" args="(shared_ptr&lt; Candidate::Comparator &gt; gold_comparator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classreranker_1_1_model.html#a9c3b21c730eddb930756387bbac173fa">reranker::Model::set_gold_comparator</a> </td>
          <td>(</td>
          <td class="paramtype">shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a> &gt;&#160;</td>
          <td class="paramname"><em>gold_comparator</em></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_h_source.html#l00512">512</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="aaefb076ddcffefa2da7881579db7a7a9"></a><!-- doxytag: member="reranker::Model::set_kernel_fn" ref="aaefb076ddcffefa2da7881579db7a7a9" args="(KernelFunction *kernel_fn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classreranker_1_1_model.html#aaefb076ddcffefa2da7881579db7a7a9">reranker::Model::set_kernel_fn</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_kernel_function.html">KernelFunction</a> *&#160;</td>
          <td class="paramname"><em>kernel_fn</em></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the kernel function for this model. </p>
<p>The kernel function instance will be owned by this <a class="el" href="classreranker_1_1_model.html" title="Model is an interface for reranking models.">Model</a> instance. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00502">502</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a0ab309493d66bb5231a7d19b81d0b997"></a><!-- doxytag: member="reranker::Model::set_max_epochs" ref="a0ab309493d66bb5231a7d19b81d0b997" args="(int max_epochs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#a0ab309493d66bb5231a7d19b81d0b997">reranker::Model::set_max_epochs</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_epochs</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the maximum number of epochs to train. </p>
<p>This value will only be respected if greater than 0. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00464">464</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a9ceb029bcfd1f94e140c8ffb445ae480"></a><!-- doxytag: member="reranker::Model::set_min_epochs" ref="a9ceb029bcfd1f94e140c8ffb445ae480" args="(int min_epochs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#a9ceb029bcfd1f94e140c8ffb445ae480">reranker::Model::set_min_epochs</a> </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>min_epochs</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the minimum number of epochs to train. </p>
<p>This value will only be respected if greater than 0. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00460">460</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ae5c922a33c8643373424f860e880cf72"></a><!-- doxytag: member="reranker::Model::set_name" ref="ae5c922a33c8643373424f860e880cf72" args="(const string &amp;name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classreranker_1_1_model.html#ae5c922a33c8643373424f860e880cf72">reranker::Model::set_name</a> </td>
          <td>(</td>
          <td class="paramtype">const string &amp;&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the name of this <a class="el" href="classreranker_1_1_model.html">Model</a> instance. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00498">498</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a5345ab1669dc9300abed225ddc5c9a9e"></a><!-- doxytag: member="reranker::Model::set_score_comparator" ref="a5345ab1669dc9300abed225ddc5c9a9e" args="(shared_ptr&lt; Candidate::Comparator &gt; score_comparator)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classreranker_1_1_model.html#a5345ab1669dc9300abed225ddc5c9a9e">reranker::Model::set_score_comparator</a> </td>
          <td>(</td>
          <td class="paramtype">shared_ptr&lt; <a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a> &gt;&#160;</td>
          <td class="paramname"><em>score_comparator</em></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_h_source.html#l00507">507</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ac8b9c5c951206127f87be6b2b76f9d8d"></a><!-- doxytag: member="reranker::Model::set_symbols" ref="ac8b9c5c951206127f87be6b2b76f9d8d" args="(Symbols *symbols)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#ac8b9c5c951206127f87be6b2b76f9d8d">reranker::Model::set_symbols</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_symbols.html">Symbols</a> *&#160;</td>
          <td class="paramname"><em>symbols</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Sets the <a class="el" href="classreranker_1_1_symbols.html" title="An interface specifying a converter from symbols (strings) to int indices.">Symbols</a> instance for this <a class="el" href="classreranker_1_1_model.html" title="Model is an interface for reranking models.">Model</a> to be the specified instance. </p>
<p>This <a class="el" href="classreranker_1_1_model.html" title="Model is an interface for reranking models.">Model</a> will be responsible for destroying the specified <a class="el" href="classreranker_1_1_symbols.html" title="An interface specifying a converter from symbols (strings) to int indices.">Symbols</a> instance. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00489">489</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="abbcabce58d51fea59d81a6e71020e7cb"></a><!-- doxytag: member="reranker::Model::set_use_weighted_loss" ref="abbcabce58d51fea59d81a6e71020e7cb" args="(bool use_weighted_loss)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#abbcabce58d51fea59d81a6e71020e7cb">reranker::Model::set_use_weighted_loss</a> </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>use_weighted_loss</em></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_h_source.html#l00482">482</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="af13a628eba8c6d9a14652dfe36d5da57"></a><!-- doxytag: member="reranker::Model::SetDefaultCandidateSetScorer" ref="af13a628eba8c6d9a14652dfe36d5da57" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classreranker_1_1_model.html#af13a628eba8c6d9a14652dfe36d5da57">reranker::Model::SetDefaultCandidateSetScorer</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_h_source.html#l00526">526</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="af5ad4399e59ddf4a82b37d8ee348a370"></a><!-- doxytag: member="reranker::Model::SetDefaultComparators" ref="af5ad4399e59ddf4a82b37d8ee348a370" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classreranker_1_1_model.html#af5ad4399e59ddf4a82b37d8ee348a370">reranker::Model::SetDefaultComparators</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_h_source.html#l00521">521</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a5ae78a37db26302ce041552de0032b6e"></a><!-- doxytag: member="reranker::Model::SetDefaultObjects" ref="a5ae78a37db26302ce041552de0032b6e" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classreranker_1_1_model.html#a5ae78a37db26302ce041552de0032b6e">reranker::Model::SetDefaultObjects</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="classreranker_1_1_perceptron_model.html#aaed9bda6087a09387988a3def2c90279">reranker::PerceptronModel</a>.</p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00516">516</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a736bec0b8f468285580982df181a7cd0"></a><!-- doxytag: member="reranker::Model::symbols" ref="a736bec0b8f468285580982df181a7cd0" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classreranker_1_1_symbols.html">Symbols</a>* <a class="el" href="classreranker_1_1_model.html#a736bec0b8f468285580982df181a7cd0">reranker::Model::symbols</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the symbol table for this model. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00295">295</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a6385b58c2b89e43f00033bbed7ead046"></a><!-- doxytag: member="reranker::Model::time" ref="a6385b58c2b89e43f00033bbed7ead046" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classreranker_1_1_time.html">Time</a>&amp; <a class="el" href="classreranker_1_1_model.html#a6385b58c2b89e43f00033bbed7ead046">reranker::Model::time</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the current training time of this model: number of epochs, number of time steps in the current epoch and total number of time steps (which is equal to the total number of training examples seen). </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00301">301</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a0468287cffc492868548bc5627942734"></a><!-- doxytag: member="reranker::Model::Train" ref="a0468287cffc492868548bc5627942734" args="(CandidateSetIterator &amp;examples, CandidateSetIterator &amp;development_test)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#a0468287cffc492868548bc5627942734">reranker::Model::Train</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_candidate_set_iterator.html">CandidateSetIterator</a> &amp;&#160;</td>
          <td class="paramname"><em>examples</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_candidate_set_iterator.html">CandidateSetIterator</a> &amp;&#160;</td>
          <td class="paramname"><em>development_test</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Trains this model on a collection of training examples, where each training example is a set of candidates, possibly with a distinguished "gold candidate" that is the reference against which other candidates are scored. </p>
<p>Typically, invoking this method indicates to train a model until convergence.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">examples</td><td>the set of training examples on which to train this model </td></tr>
    <tr><td class="paramname">development_test</td><td>the set of held-out examples to use to evaluate the model after each epoch </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#a8ccab23af92f9a7db985257791f55acb">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="a6aeac4515eae1f8b6d7adf665f05060f"></a><!-- doxytag: member="reranker::Model::TrainOneEpoch" ref="a6aeac4515eae1f8b6d7adf665f05060f" args="(CandidateSetIterator &amp;examples)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#a6aeac4515eae1f8b6d7adf665f05060f">reranker::Model::TrainOneEpoch</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_candidate_set_iterator.html">CandidateSetIterator</a> &amp;&#160;</td>
          <td class="paramname"><em>examples</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Trains this model for one epoch, i.e., a single pass through the specified set of training examples. </p>
<p>Typically the Train method will be implemented in terms of this method.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">examples</td><td>the set of training examples on which to train this model </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#ae88557a6953807829c8d5fb760589487">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="ad6a7660247d0c0477d5c4f01591a942b"></a><!-- doxytag: member="reranker::Model::TrainOnExample" ref="ad6a7660247d0c0477d5c4f01591a942b" args="(CandidateSet &amp;example)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#ad6a7660247d0c0477d5c4f01591a942b">reranker::Model::TrainOnExample</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_candidate_set.html">CandidateSet</a> &amp;&#160;</td>
          <td class="paramname"><em>example</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Trains this model on the specified training example. </p>
<p>Typically, the TrainOneEpoch method will be implemented in terms of this method.</p>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">example</td><td>the example on which to train </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#abfb9261016f61a8f660e699ccbdafa6a">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="aef926c377e32ce215bbc69847853e16e"></a><!-- doxytag: member="reranker::Model::Update" ref="aef926c377e32ce215bbc69847853e16e" args="(CandidateSet &amp;example)=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classreranker_1_1_model.html#aef926c377e32ce215bbc69847853e16e">reranker::Model::Update</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classreranker_1_1_candidate_set.html">CandidateSet</a> &amp;&#160;</td>
          <td class="paramname"><em>example</em></td><td>)</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Updates the current model based on the specified set of candidates. </p>
<p>TrainOnExample will be implemented in terms of this method.</p>
<dl class="user"><dt><b>Implementation advice:</b></dt><dd>This method is typically implemented in terms of a <a class="el" href="classreranker_1_1_model_1_1_updater.html">Updater</a> instance.</dd></dl>
<dl class="params"><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">example</td><td>the current training example </td></tr>
  </table>
  </dd>
</dl>

<p>Implemented in <a class="el" href="classreranker_1_1_perceptron_model.html#ae7e3982866cc3db145c0e3ff4b6ef783">reranker::PerceptronModel</a>.</p>

</div>
</div>
<a class="anchor" id="a013aa52eb8693d1133a0d32740dffa5a"></a><!-- doxytag: member="reranker::Model::use_weighted_loss" ref="a013aa52eb8693d1133a0d32740dffa5a" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool <a class="el" href="classreranker_1_1_model.html#a013aa52eb8693d1133a0d32740dffa5a">reranker::Model::use_weighted_loss</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="model_8_h_source.html#l00480">480</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="abf7147622fb3c5801016fb7c479f3158"></a><!-- doxytag: member="reranker::Model::candidate_set_scorer_" ref="abf7147622fb3c5801016fb7c479f3158" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt;<a class="el" href="classreranker_1_1_candidate_set_1_1_scorer.html">CandidateSet::Scorer</a>&gt; <a class="el" href="classreranker_1_1_model.html#abf7147622fb3c5801016fb7c479f3158">reranker::Model::candidate_set_scorer_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A scorer for <a class="el" href="classreranker_1_1_candidate_set.html">CandidateSet</a> instances. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00576">576</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a97e6523258a589e4fedb67b3a6364cea"></a><!-- doxytag: member="reranker::Model::end_of_epoch_hook_" ref="a97e6523258a589e4fedb67b3a6364cea" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classreranker_1_1_model_1_1_hook.html">Hook</a>* <a class="el" href="classreranker_1_1_model.html#a97e6523258a589e4fedb67b3a6364cea">reranker::Model::end_of_epoch_hook_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A hook to be performed at the end of every epoch. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00601">601</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a8107be43f3916858a204c2d7c2f2d32e"></a><!-- doxytag: member="reranker::Model::gold_comparator_" ref="a8107be43f3916858a204c2d7c2f2d32e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt;<a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a>&gt; <a class="el" href="classreranker_1_1_model.html#a8107be43f3916858a204c2d7c2f2d32e">reranker::Model::gold_comparator_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A comparator to provide an ordering for candidates to find the gold candidate in a set. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00574">574</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a50128261606a9cb655493b3f9b9149c4"></a><!-- doxytag: member="reranker::Model::kernel_fn_" ref="a50128261606a9cb655493b3f9b9149c4" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classreranker_1_1_kernel_function.html">KernelFunction</a>* <a class="el" href="classreranker_1_1_model.html#a50128261606a9cb655493b3f9b9149c4">reranker::Model::kernel_fn_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Yes, this is an interface, but we add the kernel function as a data member. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00566">566</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ad3a296860f768bee866213cc0c8bbf83"></a><!-- doxytag: member="reranker::Model::loss_per_epoch_" ref="ad3a296860f768bee866213cc0c8bbf83" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vector&lt;double&gt; <a class="el" href="classreranker_1_1_model.html#ad3a296860f768bee866213cc0c8bbf83">reranker::Model::loss_per_epoch_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The average loss per epoch. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00582">582</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="adf7fefff5cd4576a101c1fe4c390d9db"></a><!-- doxytag: member="reranker::Model::max_epochs_" ref="adf7fefff5cd4576a101c1fe4c390d9db" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classreranker_1_1_model.html#adf7fefff5cd4576a101c1fe4c390d9db">reranker::Model::max_epochs_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The maximum number of training epochs to execute. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00599">599</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a2a22810704e9c2cde4cc6cd9c2c1531f"></a><!-- doxytag: member="reranker::Model::min_epochs_" ref="a2a22810704e9c2cde4cc6cd9c2c1531f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classreranker_1_1_model.html#a2a22810704e9c2cde4cc6cd9c2c1531f">reranker::Model::min_epochs_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The minimum number of training epochs to execute. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00597">597</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ac6e00f894c28c3bc36636983a0fc2bb6"></a><!-- doxytag: member="reranker::Model::name_" ref="ac6e00f894c28c3bc36636983a0fc2bb6" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">string <a class="el" href="classreranker_1_1_model.html#ac6e00f894c28c3bc36636983a0fc2bb6">reranker::Model::name_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>This model&rsquo;s unique name. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00558">558</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ab308fe9304485e8c838ed2a196bb585b"></a><!-- doxytag: member="reranker::Model::num_testing_errors_per_epoch_" ref="ab308fe9304485e8c838ed2a196bb585b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vector&lt;int&gt; <a class="el" href="classreranker_1_1_model.html#ab308fe9304485e8c838ed2a196bb585b">reranker::Model::num_testing_errors_per_epoch_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The number of testing errors made on held-out development test data for each epoch. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00585">585</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ac9bd9064006d70c36391818fa6a628b7"></a><!-- doxytag: member="reranker::Model::num_training_errors_" ref="ac9bd9064006d70c36391818fa6a628b7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classreranker_1_1_model.html#ac9bd9064006d70c36391818fa6a628b7">reranker::Model::num_training_errors_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The number of errors made on training examples. </p>
<p>This value may be identical to num_updates_ in the case of the perceptron family of algorithms. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00591">591</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a1f40d6deeb75c42c3cf78d73e71f0914"></a><!-- doxytag: member="reranker::Model::num_training_errors_per_epoch_" ref="a1f40d6deeb75c42c3cf78d73e71f0914" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vector&lt;int&gt; <a class="el" href="classreranker_1_1_model.html#a1f40d6deeb75c42c3cf78d73e71f0914">reranker::Model::num_training_errors_per_epoch_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The number of errors made on training examples during each epoch. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00587">587</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ace86345c7febd6401dc3f48ad555f02e"></a><!-- doxytag: member="reranker::Model::num_updates_" ref="ace86345c7febd6401dc3f48ad555f02e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int <a class="el" href="classreranker_1_1_model.html#ace86345c7febd6401dc3f48ad555f02e">reranker::Model::num_updates_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The number of times an update was performed on this model during training. </p>
<p>This value may be identical to num_training_errors_ in the case of the perceptron family of algorithms. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00595">595</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a9e7183bee1f50b058b17ab8e43cdbeef"></a><!-- doxytag: member="reranker::Model::score_comparator_" ref="a9e7183bee1f50b058b17ab8e43cdbeef" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt;<a class="el" href="classreranker_1_1_candidate_1_1_comparator.html">Candidate::Comparator</a>&gt; <a class="el" href="classreranker_1_1_model.html#a9e7183bee1f50b058b17ab8e43cdbeef">reranker::Model::score_comparator_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>A comparator to provide an ordering for candidates based on score when scoring all candidates in a set. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00571">571</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a8c0f904234605692035ba179f85c53e2"></a><!-- doxytag: member="reranker::Model::symbols_" ref="a8c0f904234605692035ba179f85c53e2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classreranker_1_1_symbols.html">Symbols</a>* <a class="el" href="classreranker_1_1_model.html#a8c0f904234605692035ba179f85c53e2">reranker::Model::symbols_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The symbol table for this model (may be NULL). </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00568">568</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="ac23eff7aa52c83c566658bcba9093c4f"></a><!-- doxytag: member="reranker::Model::time_" ref="ac23eff7aa52c83c566658bcba9093c4f" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classreranker_1_1_time.html">Time</a> <a class="el" href="classreranker_1_1_model.html#ac23eff7aa52c83c566658bcba9093c4f">reranker::Model::time_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The tiny object that holds the "training time" for this model (epoch, index and absolute time index). </p>
<p>Note that the absolute time index should always equal the total number of training examples seen during training. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00563">563</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="aac9c10b6d6a3eec5f781cfbf64bcdf22"></a><!-- doxytag: member="reranker::Model::update_predicate_" ref="aac9c10b6d6a3eec5f781cfbf64bcdf22" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt;<a class="el" href="classreranker_1_1_model_1_1_update_predicate.html">UpdatePredicate</a>&gt; <a class="el" href="classreranker_1_1_model.html#aac9c10b6d6a3eec5f781cfbf64bcdf22">reranker::Model::update_predicate_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The update predicate for this model. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00578">578</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a6af75a0de0ab2cfb3435919977341550"></a><!-- doxytag: member="reranker::Model::updater_" ref="a6af75a0de0ab2cfb3435919977341550" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">shared_ptr&lt;<a class="el" href="classreranker_1_1_model_1_1_updater.html">Updater</a>&gt; <a class="el" href="classreranker_1_1_model.html#a6af75a0de0ab2cfb3435919977341550">reranker::Model::updater_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>The updater for this model. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00580">580</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<a class="anchor" id="a0601602d295f4b069e11ddebf941c2a5"></a><!-- doxytag: member="reranker::Model::use_weighted_loss_" ref="a0601602d295f4b069e11ddebf941c2a5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classreranker_1_1_model.html#a0601602d295f4b069e11ddebf941c2a5">reranker::Model::use_weighted_loss_</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Indicates whether this model should weight each candidate&rsquo;s loss by the value returned by <a class="el" href="classreranker_1_1_candidate_set.html#a9bd2e0995871ec942b8117dc01293631">CandidateSet::loss_weight</a>. </p>

<p>Definition at line <a class="el" href="model_8_h_source.html#l00604">604</a> of file <a class="el" href="model_8_h_source.html">model.H</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="model_8_h_source.html">model.H</a></li>
<li><a class="el" href="model_8_c_source.html">model.C</a></li>
</ul>
</div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated on Tue Apr 9 2013 11:56:31 for Reranker Framework (ReFr) by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>

</body>
</html>
